package com.whmall.service.crm.entity.dto.company;

import com.whmall.component.entity.dto.CompanyKeyFieldDTO;
import com.whmall.component.entity.dto.QueryManagerRspDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @Description TODO
 * @Author yangkuan
 * @Date 2020/8/5 14:15
 **/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CompanyRspDTO implements Serializable {

    private static final long serialVersionUID = 4201785985208830249L;
    private Long id;

    /**
     * 中文名称
     */
    private String name;

    private String formerName;

    /**
     * 公司简称（目前只用于试剂商）
     */
    private String nameAbbr;

    /**
     * 助记码（后端根据公司名称首写字母自动生成助记码）
     */
    private String mcode;

    /**
     * 公司来源
     */
    private Integer companySource;

    /**
     * 公司类型
     */
    private String companyType;

    /**
     * 是否内部公司
     */
    private Integer isInternal;

    /**
     * 是否供应商
     */
    private Integer isSupplier;

    /**
     * 是否客户
     */
    private Integer isCustomer;

    /**
     * 是否可以修改供应商采购订单金额
     */
    private Integer isCanMspoa;

    /**
     * 需要云检测	1是，0否，2必须
     */
    private Integer needDetect;

    /**
     * 审核状态（-1审核不通过，0审核中, 1审核通过）
     */
    private Integer verified;

    /**
     * 是否大客户	1是，0否
     */
    private Integer isBigCustomer;

    /**
     * 客户结算方式
     */
    private Integer customerSettlementMethod;

    /**
     * 供应商结算方式
     */
    private Integer supplierSettlementMethod;

    /**
     * 客户池客户级别（查看通用配置文档）
     */
    private String customerGrade;

    /**
     * 年销售额
     */
    private Integer annualSales;

    /**
     * 公司规模
     */
    private Integer companyScale;

    /**
     * 注册资金
     */
    private Integer registeredCapital;

    /**
     * 撮合ID
     */
    private Long traderId;

    /**
     * 撮合姓名
     */
    private String traderName;

    /**
     * 客服ID
     */
    private Long csId;

    /**
     * 客服姓名
     */
    private String csName;

    /**
     * 采购ID
     */
    private Long purchaserId;

    /**
     * 采购姓名
     */
    private String purchaserName;

    /**
     * 备选采购ID
     */
    private Long backPurchaserId;

    /**
     * 备选采购姓名
     */
    private String backPurchaserName;

    /**
     * 供管ID
     */
    private Long vmId;

    /**
     * 供管姓名
     */
    private String vmName;

    /**
     * BD ID
     */
    private Long bdId;

    /**
     * BD 姓名
     */
    private String bdName;

    /**
     * 管制品专员 ID
     */
    private Long controlId;

    /**
     * 管制品专员 姓名
     */
    private String controlName;

    /**
     * 撮合部门路径
     */
    private String traderDepartmentPath;

    /**
     * 客服部门路径
     */
    private String csDepartmentPath;

    /**
     * 采购部门路径
     */
    private String purchaserDepartmentPath;

    /**
     * 供管部门路径
     */
    private String vmDepartmentPath;

    /**
     * BD部门路径
     */
    private String bdDepartmentPath;

    /**
     * 管制品专员部门路径
     */
    private String controlDepartmentPath;

    /**
     * 国家（查看通用配置文档）
     */
    private Integer country;

    /**
     * 省份
     */
    private Integer province;

    /**
     * 城市
     */
    private Integer city;

    /**
     * 区县
     */
    private Integer district;

    /**
     * 公司成立时间
     */
    private Date establishedTime;

    /**
     * 首次成单时间
     */
    private Date firstOrderTime;

    /**
     * 最后成单时间
     */
    private Date lastOrderTime;

    /**
     * 首次询盘时间
     */
    private Date firstInquiryTime;

    /**
     * 最后询盘时间
     */
    private Date lastInquiryTime;

    /**
     * 供应商首次成单时间
     */
    private Date supplierFirstOrderTime;

    /**
     * 供应商首次发货时间
     */
    private Date supplierFirstShipTime;

    /**
     * 是否注销，1是，0否
     */
    private Integer isLogout;

    /**
     * 是否设置默认账户，1是，0否
     */
    private Integer isDefaultAccount;

    /**
     * 注销原因
     */
    private Integer logoutReason;

    private Long createId;

    private Date createTime;

    /**
     * 删除
     */
    private Integer deleted;

    private Long updateId;

    private Date updateTime;

    /**
     * 完整的地址
     */
    private String wholeAdress;

    /**
     * 登录用户ID（前端不传）
     */
    private Long employeeId;

    /**
     * 负责人候选人列表（前端不传）
     */
    private List<QueryManagerRspDTO> candidates;

    /**
     * 是否有开发价值	1是，0否，变为无开发价值时，清除撮合ID，并释放到公共池
     */
    private Integer isDevelopmentValue;


    /**
     * 是否锁定个人池客户 1是，0否
     */
    private Integer isLockPersonalPoolCustomer;

    /**
     * 是否为客户池客户 1是，0否
     */
    private Integer isCustomerPoolCustomer;

    /**
     * 无开发价值原因说明
     */
    private String noDevelopmentValueRemark;

    /**
     * 无开发价值原因 值请查看通用配置文档
     */
    private Integer noDevelopmentValueReason;

    /**
     * 公司行业类型
     */
    private List<CompanyKeyFieldDTO.Type> companyTypeList;

    /**
     * 是否为企业客户 1是，0否 用于撮合奖金计算
     */
    private Integer hasEnterpriseCompany;

    /**
     * 是否能查看AI路线设免费版 (1是 0 否)
     */
    private Integer hasCvfvair;

    /**
     * 供应商合作情况<br />
     * 值请查看通用配置文档
     */
    private Integer supplierCooperationState;

    /**
     * 客户合作情况<br />
     * 值请查看通用配置文档
     */
    private Integer customerCooperationState;

    /**
     * 是否强制中转<br />
     * 1是，0否<br />
     * 之前存储在redis，需要清洗数据
     */
    private Integer hasMandatoryTransfer;

    /**
     * 供应商类型<br />
     * 类型查看通用配置文档<br />
     * 格式：-类型1-类型2-…-类型N-
     */
    private String supplierTypeList;

    /**
     * 信用级别<br />
     * 值请查看通用配置文档
     */
    private Integer creditRank;

    /**
     * 合作类型<br />
     * 值请查看通用配置文档<br />
     * 格式：-类型1-类型2-…-类型N-
     */
    private String cooperationTypeList;

    /**
     * 是否是账期黑名单	1是，0否
     */
    private Integer inBillingBlacklist;

    /**
     * 交易状态	1可交易，0不可交易
     */
    private Integer tradingStatus;
}
